package jdbcTemplate;

import Utils.JDBCUtils;
import org.junit.Test;
import org.springframework.jdbc.core.BeanPropertyRowMapper;
import org.springframework.jdbc.core.JdbcTemplate;

import java.util.List;
import java.util.Map;

/**
 4 :  练习 :
 *  需求  : (在数据库为db3的emp表中进行练习的)
 1 :  修改一号数据的salary为10000
 2 :  添加一条记录
 3 :  删除刚才添加的记录
 4 :  查询id=1的记录,将其封装为Map集合
 5 :  查询所有集合,将其封装为List
 6 :  查询所有记录,将其封装为Emp对象的List集合
 7 :  查询总记录数

 */


public class jdbcTemplateDemo02 {
    //对Template进行练习,采用junit单元测试,可以让方法独立进行,就是一个练习题一个方法,这样会不依赖主方法,
    // 这个junit多用于测试,这样出现问题修改更加方便

    // 获取Template对象
    JdbcTemplate aa=new JdbcTemplate(JDBCUtils.getDataSource());


    @Test  //这个注解需要加入到工作空间中才能使用,加上@Test后左边会有一个小灯泡抱错,点击小灯泡选择第一个
    public void test1(){
        //定义sql
        String sql = "update emp set salary = 10000 where id = 1001";
        //执行sql
        int bb = aa.update(sql);
        System.out.println(bb);
    }
    @Test
    public void  test2(){
      String sql = "insert into emp(id,ename,dept_id) values(?,?,?)";
        int bb = aa.update(sql, 1015, "郭靖", 10);
        System.out.println(bb);
    }

    @Test
    public void test3(){
      String sql="delete from emp where id = ?";
        int cc = aa.update(sql, 1015);
        System.out.println(cc);
    }

   @Test
    public void test4(){
        String sql = "select * from emp where id = ?";
       Map<String, Object> bb = aa.queryForMap(sql, 1);
       System.out.println(bb);
   }

   @Test
   public void test5(){
        String sql = "select * from emp";
       List<Map<String, Object>> bb = aa.queryForList(sql);
       for (Map<String, Object> cc : bb) {
           System.out.println(cc);
       }
   }

   @Test
   public void test6(){
        String sql = "select * from emp ";
       List<emp> bb = aa.query(sql, new BeanPropertyRowMapper<emp>(emp.class));
       for (emp cc : bb ){
           System.out.println(cc);
       }
   }

}
